package com.xuecheng.content.service;

import com.xuecheng.content.model.dto.BindTeachplanMediaDto;
import com.xuecheng.content.model.dto.SaveTeachplanDto;
import com.xuecheng.content.model.dto.TeachplanDto;

import java.util.List;

/**
 * @description: 课程计划业务接口
 * @params:
 * @return:
 * @author: ajie
 * @date: 2024/1/14 10:19
 */
public interface TeachplanService {

    /**
     * @description 查询课程计划树型结构
     * @param courseId  课程id
     * @return List<TeachplanDto>
     * @author Mr.M
     * @date 2022/9/9 11:13
     */
    public List<TeachplanDto> findTeachplanTree(long courseId);

    /**
     * @description: 课程计划创建或修改
     * @params: [saveTeachplanDto]
     * @return:
     * @author: ajie
     * @date: 2024/1/14 16:36
     */
    public void saveTeachplan(SaveTeachplanDto saveTeachplanDto);

    /**
     * @description: 删除课程计划
     * @params: [teachplanId]
     * @return:
     * @author: ajie
     * @date: 2024/1/14 21:19
     */
    public void deleteTeachplanById(Long teachplanId);

    /**
     * @description: 课程计划向下移动 
     * @params: [id]       
     * @return: 
     * @author: ajie
     * @date: 2024/1/15 20:54
     */
    public void movedownTeachplan(Long id);

    /**
     * @description: 课程计划向上移动 
     * @params: [id]       
     * @return: 
     * @author: ajie
     * @date: 2024/1/15 22:11
     */
    void moveupTeachplan(Long id);

    /**
     * @description: 课程计划与媒资信息绑定
     * @params: [bindTeachplanMediaDto]
     * @return:
     * @author: ajie
     * @date: 2024/1/24 21:24
     */
    public void associationMedia(BindTeachplanMediaDto bindTeachplanMediaDto);

    /**
     * @description: 课程计划和媒资信息绑定 
     * @params: [teachPlanId, mediaId]       
     * @return: 
     * @author: ajie
     * @date: 2024/1/24 22:07
     */
    void deleteAssociationMedia(Long teachPlanId, String mediaId);
}
